package cn.ztydata.teachingsystem.heaven.entity.exercise;

import cn.ztydata.teachingsystem.heaven.entity.BaseEntity;
import cn.ztydata.teachingsystem.heaven.entity.KnowledgePoint;
import cn.ztydata.teachingsystem.heaven.entity.test.StudentAnswer;

import java.sql.Timestamp;
import java.util.List;

/**
 * 习题实体类
 * Created by wyh on 2015/2/4.
 */
public class Exercise extends BaseEntity {
    private Long id; //ID
    private String topic; //题干
    private String showTopic; //显示用的题干
    private Integer type; //题型：1单选  2多选  3判断  4填空  5简答  6阅读  7阅读（多问）
    private Integer difficulty; //难度：1-5
    private Integer isOpen; //是否公开：0否1是
    private Integer status; //审核状态：0未审核；1通过；2驳回；3删除
    private Long score; //默认分值
    private Long deptId; //系部ID
    private Long specId; //专业ID
    private Timestamp creationTime; //创建时间
    private String creatorName; //创建者姓名
    private Long creatorId; //创建者ID
    private Timestamp auditTime; //审批时间
    private Long auditorId; //审核人ID
    private Long parentId = Long.valueOf(0); //父习题ID

    private String downloadAddress; //附件下载地址
    private String showAddress; //附件浏览地址
    private String fileName; //附件文件名

    private List<KnowledgePoint> kps; //知识点

    private List<Long> resourceIds; //资源ID

    private Long useTotal; //使用次数
    private Long answerTotal; //回答次数
    private Long rightTotal; //正确次数
    private String accuracy; // 正确率

    private List<ExerciseAnalysis> analysisList; //习题常规解析 authorlyj
    private List<ExerciseTip> tipList; //习题提示对象集合 authorlyj

    private List<ExerciseBlank> blanks;//空

    private List<ExerciseOption> options; //习题选项

    private List<Exercise> subExercises;//子习题

    private int crossheadCnt;//子题个数（阅读题）

    private int blankCnt;//答案数总和（填空）

    private Long analysisResCount; //资源解析总数

    private StudentAnswer studentAnswer; //学生答题

    public String getAccuracy() {
        return accuracy;
    }

    public void setAccuracy(String accuracy) {
        this.accuracy = accuracy;
    }

    public List<ExerciseAnalysis> getAnalysisList() {
        return analysisList;
    }

    public void setAnalysisList(List<ExerciseAnalysis> analysisList) {
        this.analysisList = analysisList;
    }

    public List<ExerciseTip> getTipList() {
        return tipList;
    }

    public void setTipList(List<ExerciseTip> tipList) {
        this.tipList = tipList;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTopic() {
        return topic;
    }

    public void setTopic(String topic) {
        this.topic = topic;
    }

    public String getShowTopic() {
        return showTopic;
    }

    public void setShowTopic(String showTopic) {
        this.showTopic = showTopic;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getDifficulty() {
        return difficulty;
    }

    public void setDifficulty(Integer difficulty) {
        this.difficulty = difficulty;
    }

    public Integer getIsOpen() {
        return isOpen;
    }

    public void setIsOpen(Integer isOpen) {
        this.isOpen = isOpen;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getScore() {
        return score;
    }

    public void setScore(Long score) {
        this.score = score;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getSpecId() {
        return specId;
    }

    public void setSpecId(Long specId) {
        this.specId = specId;
    }

    public Timestamp getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(Timestamp creationTime) {
        this.creationTime = creationTime;
    }

    public Long getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(Long creatorId) {
        this.creatorId = creatorId;
    }

    public Timestamp getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Timestamp auditTime) {
        this.auditTime = auditTime;
    }

    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public List<KnowledgePoint> getKps() {
        return kps;
    }

    public void setKps(List<KnowledgePoint> kps) {
        this.kps = kps;
    }

    public List<Long> getResourceIds() {
        return resourceIds;
    }

    public void setResourceIds(List<Long> resourceIds) {
        this.resourceIds = resourceIds;
    }

    public Long getUseTotal() {
        return useTotal;
    }

    public void setUseTotal(Long useTotal) {
        this.useTotal = useTotal;
    }

    public Long getAnswerTotal() {
        return answerTotal;
    }

    public void setAnswerTotal(Long answerTotal) {
        this.answerTotal = answerTotal;
    }

    public Long getRightTotal() {
        return rightTotal;
    }

    public void setRightTotal(Long rightTotal) {
        this.rightTotal = rightTotal;
    }

    public String getDownloadAddress() {
    return downloadAddress;
}

    public void setDownloadAddress(String downloadAddress) {
        this.downloadAddress = downloadAddress;
    }

    public String getShowAddress() {
        return showAddress;
    }

    public void setShowAddress(String showAddress) {
        this.showAddress = showAddress;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public List<Exercise> getSubExercises() {
        return subExercises;
    }

    public void setSubExercises(List<Exercise> subExercises) {
        this.subExercises = subExercises;
    }

    public List<ExerciseOption> getOptions() {
        return options;
    }

    public void setOptions(List<ExerciseOption> options) {
        this.options = options;
    }

    public List<ExerciseBlank> getBlanks() {
        return blanks;
    }

    public void setBlanks(List<ExerciseBlank> blanks) {
        this.blanks = blanks;
    }

    public int getCrossheadCnt() {
        return crossheadCnt;
    }

    public void setCrossheadCnt(int crossheadCnt) {
        this.crossheadCnt = crossheadCnt;
    }

    public int getBlankCnt() {
        return blankCnt;
    }

    public void setBlankCnt(int blankCnt) {
        this.blankCnt = blankCnt;
    }

    public Long getAnalysisResCount() {
        return analysisResCount;
    }

    public void setAnalysisResCount(Long analysisResCount) {
        this.analysisResCount = analysisResCount;
    }

    public StudentAnswer getStudentAnswer() {
        return studentAnswer;
    }

    public void setStudentAnswer(StudentAnswer studentAnswer) {
        this.studentAnswer = studentAnswer;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }
}
